<!DOCTYPE html>
<html lang="en">
<head>
    <title>login</title>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="theme-color" content="#712cf9">
    <link rel="stylesheet" href="/webjars/bootstrap/css/bootstrap.css"
          th:href="@{/webjars/bootstrap/css/bootstrap.css}"/>
    <style>
        .bd-placeholder-img {
            font-size: 1.125rem;
            text-anchor: middle;
            -webkit-user-select: none;
            -moz-user-select: none;
            user-select: none;
        }

        @media (min-width: 768px) {
            .bd-placeholder-img-lg {
                font-size: 3.5rem;
            }
        }

        .b-example-divider {
            height: 3rem;
            background-color: rgba(0, 0, 0, .1);
            border: solid rgba(0, 0, 0, .15);
            border-width: 1px 0;
            box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);
        }

        .b-example-vr {
            flex-shrink: 0;
            width: 1.5rem;
            height: 100vh;
        }

        .bi {
            vertical-align: -.125em;
            fill: currentColor;
        }

        .nav-scroller {
            position: relative;
            z-index: 2;
            height: 2.75rem;
            overflow-y: hidden;
        }

        .nav-scroller .nav {
            display: flex;
            flex-wrap: nowrap;
            padding-bottom: 1rem;
            margin-top: -1px;
            overflow-x: auto;
            text-align: center;
            white-space: nowrap;
            -webkit-overflow-scrolling: touch;
        }
        html,
        body {
            height: 100%;
        }

        body {
            display: flex;
            align-items: center;
            padding-top: 40px;
            padding-bottom: 40px;
            background-color: #f5f5f5;
        }

        .form-signin {
            max-width: 330px;
            padding: 15px;
        }

        .form-signin .form-floating:focus-within {
            z-index: 2;
        }

        .form-signin input[type="email"] {
            margin-bottom: -1px;
            border-bottom-right-radius: 0;
            border-bottom-left-radius: 0;
        }

        .form-signin input[type="password"] {
            margin-bottom: 10px;
            border-top-left-radius: 0;
            border-top-right-radius: 0;
        }
    </style>
    <!--<link th:href="@{/css/signin.css}" rel="stylesheet">-->
</head>
<body class="text-center">
<main class="form-signin w-100 m-auto">

    <form id="loginForm" action="/oauth2/doLogin" method="post">
        <img class="mb-4" th:src="@{/webjars/bootstrap-icons/icons/bootstrap-fill.svg}" alt="" width="72" height="57">
        <h1 class="h3 mb-3 fw-normal">登录</h1>
        <input type="hidden" name="uuid" id="uuid" value="">

        <div th:if="${error}" class="alert alert-danger" role="alert" th:text="${error}"></div>
        <div class="form-floating">
            <input type="text" class="form-control" id="username" name="username" placeholder="name@example.com">
            <label for="username">用户名</label>
        </div>
        <div class="form-floating">
            <input type="password" class="form-control" id="password" name="password" placeholder="Password">
            <label for="password">密码</label>
        </div>
        <div class="form-floating input-group">
            <input type="text" class="form-control" id="code" name="code">
            <img src="" class="rounded mx-auto float-end input-group-text" id="captchaImg" style="cursor: pointer;width: 100px;" alt="...">
            <label for="code">验证码</label>
        </div>

        <div class="checkbox mb-3">
            <label>
                <input type="checkbox" value="remember-me"> 记住我
            </label>
        </div>
        <button class="w-100 btn btn-lg btn-primary" id="submitBtn" type="submit">登录</button>
        <p class="mt-5 mb-3 text-muted">&copy; 2022–2022</p>
    </form>
</main>

<script src="/webjars/bootstrap/js/bootstrap.min.js" th:src="@{/webjars/bootstrap/js/bootstrap.min.js}"></script>
<script src="/webjars/whatwg-fetch/fetch.js" th:src="@{/webjars/whatwg-fetch/fetch.js}"></script>
<script>
    const img = document.getElementById("captchaImg");
    function getCaptchaImage(img) {
        fetch("/captchaImage")
            .then(res => res.json())
            .then(data => {
                if (data.code === 200) {
                    document.getElementById("uuid").value = data.data.uuid;
                    const src = data.data.img;
                    img.setAttribute("src", "data:image/jpg;base64," + src);
                } else {

                }
            })
    }
    getCaptchaImage(img);

    img.addEventListener('click', () => {
        getCaptchaImage(img);
    })
</script>
</body>
</html>